import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;

public class ListTraversal {
    public static void main(String[] args) {
        //四种遍历方式

        List<String> list=new ArrayList<>();
        list.add("aaa");
        list.add("bbb");
        list.add("ccc");

        //1、迭代器
        Iterator<String> it=list.iterator();
        while (it.hasNext()){
            String str=it.next();
            System.out.println(str);
        }

        System.out.println("---------------------------");


        //2、增强for
        for (String s:list){
            System.out.println(s);
        }

        System.out.println("---------------------------");

        //3、Lambda表达式
        //accept方法的形参s，依次表示集合中的每一个元素
        list.forEach(s-> System.out.println(s));

        System.out.println("---------------------------");

        //4、普通for循环
        for (int i = 0; i < list.size(); i++) {
            String s=list.get(i);
            System.out.println(s);
        }

        System.out.println("---------------------------");

        //5、列表迭代器（在遍历过程中可以添加元素）
        ListIterator<String> it1=list.listIterator();
        while (it1.hasNext()){
            String str=it1.next();
            if("bbb".equals(str)){
                it1.add("qqq");
            }
        }
        System.out.println(list);

    }
}
